#include <cstdlib>
#include <fstream>
#include <string>
#include <iostream>
#include <vector>

using std::cout;
using std::endl;
using std::vector;
using std::string;
using std::ifstream;

int test0()
{
    ifstream ifs;
    //当文件不存在时，ifstream会出错
    //ifs.open("1.txt");
    ifs.open("1_io.cc");
    if(!ifs.good()) {
        cout << "ifstream open file error" << endl;
        return  EXIT_FAILURE;
    }

    cout << " 1111" << endl;
    char buff[100] = {0};//记得进行初始化
    //获取一行数据的方式一：
    //使用ifstream流中的操作 getline函数
    ifs.getline(buff, sizeof(buff));
    cout << "buff:" << buff << endl;

    return 0;
}

int test1()
{
    ifstream ifs("1_io.cc");
    //当文件不存在时，ifstream会出错
    if(!ifs.good()) {
        cout << "ifstream open file error" << endl;
        return  EXIT_FAILURE;
    }

    cout << " 1111" << endl;
    
    vector<string> file;//用一个vector来存储整个文件的每一行
    file.reserve(100);//开辟100个元素的空间
    //获取一行数据的方式二：
    //使用ifstream流中的操作 getline函数
    string line;//会自动解决内存空间的问题
    while(!ifs.eof()) {
        std::getline(ifs, line);
        file.push_back(line);
    }
    
    for(auto & line : file) {
        cout << line << endl;
    }
    cout << "file's size:" << file.size() << endl;

    return 0;

}


int main() 
{
    test1();
}
